package com.mathdroid.modules.sniper;

import java.util.LinkedList;

import com.mathdroid.model.enums.EArmorProficiency;
import com.mathdroid.model.enums.EItemSlot;
import com.mathdroid.model.enums.EWeaponProficiency;
import com.mathdroid.modules.ISpecProficiencies;

/**
 * This contains the proficiencies of the Sniper specialization.
 */
public final class SniperProficiencies implements ISpecProficiencies {

	@Override
	public LinkedList<EWeaponProficiency> getWeaponProficiencies() {
		final LinkedList<EWeaponProficiency> list = 
			new LinkedList<EWeaponProficiency>();
		list.add(EWeaponProficiency.BLASTER_RIFLE);
		list.add(EWeaponProficiency.VIBROKNIFE);
		return list;
	}

	@Override
	public LinkedList<EArmorProficiency> getArmorProficiency() {
		final LinkedList<EArmorProficiency> list = 
			new LinkedList<EArmorProficiency>();
		
		list.add(EArmorProficiency.MEDIUM);
		list.add(EArmorProficiency.ACCESSOIRS_ARMOR);
		
		return list;
	}

	@Override
	public boolean hasWeaponProficiency(final EWeaponProficiency p) {
		return this.getWeaponProficiencies().contains(p);
	}

	@Override
	public boolean hasArmorProficiency(final EArmorProficiency p) {
		return this.getArmorProficiency().contains(p);
	}

	@Override
	public LinkedList<EItemSlot> getWeaponSlots() {
		final LinkedList<EItemSlot> list = new LinkedList<EItemSlot>();
		
		list.add(EItemSlot.RANGED_MAIN_HAND);
		list.add(EItemSlot.KNIFE_MELEE);
		
		return list;
	}

}
